//
// Created by 梦小星 on 2021/10/24.
// @author 梦小星 https://mengxiaoxing.top
// @mail mengxingcn@aliyun.com
//
#include "SqList.h"
//题目二：将顺序表L的所有元素原地逆置
/*
 * 使用双指针ij分别指向第一个元素和最后一个元素
 * i指针向后扫描，j指针向前扫描
 * 交换ij指向指向的元素
 * */
void reverseList(SqList &l) {
    //空表和长度为一的表不需要逆置
    if (l.length == 0 || l.length == 1) {
        return;
    }
    for (int i = 0, j = l.length - 1; i < j; i++, j--) {
        //交换两个元素
        int temp = l.data[i];
        l.data[i] = l.data[j];
        l.data[j] = temp;
    }

}
/*
 * 扫描前一半元素，将第i个元素和第倒数i个元素交换
 * */
void reverseList2(SqList &l) {
    //空表和长度为一的表不需要逆置
    if (l.length == 0 || l.length == 1) {
        return;
    }
    for (int i = 0; i<l.length/2;++i) {
        //交换两个元素倒数第i个元素位 l.length-1-i
        int temp = l.data[i];
        l.data[i] = l.data[l.length-1-i];
        l.data[l.length-1-i] = temp;
    }

}